home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / dev / misc / libx11inc.lha / X11 / Xm / DragCP.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-02-13  |  4.9 KB  |  196 lines

  1. /* 
  2.  * (c) Copyright 1989, 1990, 1991, 1992 OPEN SOFTWARE FOUNDATION, INC.
  3.  * ALL RIGHTS RESERVED
  4. */ 
  5. /*   $RCSfile: DragCP.h,v $ $Revision: 1.38 $ $Date: 92/05/14 12:49:57 $ */
  6. /*
  7. *  (c) Copyright 1990, 1991, 1992 HEWLETT-PACKARD COMPANY */
  8. #ifndef _XmDragCP_h
  9. #define _XmDragCP_h
  10.  
  11. #include <Xm/XmP.h>
  12. #include <Xm/DragC.h>
  13.  
  14. #include <X11/Shell.h>
  15. #include <X11/ShellP.h>
  16.  
  17. #include <Xm/DragIcon.h>
  18. #include <Xm/DragOverS.h>
  19. #include <Xm/DropSMgrP.h>
  20.  
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24.  
  25.  
  26. /***********************************************************************
  27.  *
  28.  * DragContext (RootWrapper) Widget Private Data
  29.  *
  30.  ***********************************************************************/
  31.  
  32. #ifdef _NO_PROTO
  33. typedef void    (*XmDragStartProc)();
  34. typedef void     (*XmDragCancelProc)();
  35. #else
  36. typedef void    (*XmDragStartProc)( XmDragContext, Widget, XEvent *);
  37. typedef void     (*XmDragCancelProc)( XmDragContext) ;
  38. #endif /* _NO_PROTO */
  39.  
  40.  
  41. #define _XmDragStart(dc, srcW, event) \
  42.   (*((XmDragContextClass)XtClass(dc))->drag_class.start)\
  43.   (dc, srcW, event)
  44.  
  45. #define _XmDragCancel(dc) \
  46.   (*((XmDragContextClass)XtClass(dc))->drag_class.cancel)\
  47.   (dc)
  48.  
  49. typedef struct {
  50.     XmDragStartProc        start;
  51.     XmDragCancelProc        cancel;
  52.     XtPointer               extension;
  53. } XmDragContextClassPart;
  54.  
  55. typedef struct _XmDragContextClassRec {
  56.     CoreClassPart              core_class;
  57.     XmDragContextClassPart    drag_class;
  58. } XmDragContextClassRec;
  59.  
  60. externalref XmDragContextClassRec xmDragContextClassRec;
  61.  
  62. #define XtDragByPoll     0
  63. #define XtDragByEvent    1
  64.  
  65. typedef struct {
  66.     Window        frame;
  67.     Window        window;
  68.     Widget        shell;
  69.     unsigned char    flags;
  70.     unsigned char    dragProtocolStyle;
  71.     int            xOrigin, yOrigin;
  72.     unsigned int    width, height;
  73.     unsigned int    depth;
  74.     XtPointer        iccInfo;
  75. } XmDragReceiverInfoStruct, *XmDragReceiverInfo;
  76.  
  77.  
  78. typedef union _XmConvertSelectionRec
  79.   {
  80.     XtConvertSelectionIncrProc sel_incr ;
  81.     XtConvertSelectionProc     sel ;
  82.   } XmConvertSelectionRec ;
  83.   
  84.  
  85. typedef struct _XmDragContextPart{
  86.     /****  resources ****/
  87.  
  88.     Atom            *exportTargets;
  89.     Cardinal            numExportTargets;
  90.     XmConvertSelectionRec    convertProc;
  91.     XtPointer            clientData;
  92.     XmDragIconObject        sourceCursorIcon;
  93.     XmDragIconObject        stateCursorIcon;
  94.     XmDragIconObject        operationCursorIcon;
  95.     XmDragIconObject        sourcePixmapIcon;
  96.     Pixel            cursorBackground;
  97.     Pixel            cursorForeground;
  98.     Pixel            validCursorForeground;
  99.     Pixel            invalidCursorForeground;
  100.     Pixel            noneCursorForeground;
  101.     XtCallbackList        dragMotionCallback;
  102.     XtCallbackList        operationChangedCallback;
  103.     XtCallbackList        siteEnterCallback;
  104.     XtCallbackList        siteLeaveCallback;
  105.     XtCallbackList        topLevelEnterCallback;
  106.     XtCallbackList        topLevelLeaveCallback;
  107.     XtCallbackList        dropStartCallback;
  108.     XtCallbackList        dropFinishCallback;
  109.     XtCallbackList        dragDropFinishCallback;
  110.     unsigned char        dragOperations;
  111.     Boolean            incremental;
  112.     unsigned char        blendModel;
  113.  
  114.     /* private resources */
  115.     Window            srcWindow;
  116.     Time            dragStartTime;
  117.     Atom            iccHandle;
  118.     Widget            sourceWidget;
  119.     Boolean            sourceIsExternal;
  120.  
  121.     /**** instance data ****/
  122.     Boolean            topWindowsFetched;
  123.     unsigned char         commType;
  124.     unsigned char        animationType;
  125.  
  126.     unsigned char        operation;
  127.     unsigned char        operations;
  128.     unsigned int        lastEventState;
  129.     unsigned char        dragCompletionStatus;
  130.     unsigned char        dragDropCompletionStatus;
  131.     Boolean            forceIPC;
  132.     Boolean            serverGrabbed;
  133.     Boolean            useLocal;
  134.     Boolean            inDropSite;
  135.     XtIntervalId         dragTimerId;
  136.     
  137.     Time            roundOffTime;
  138.     Time            lastChangeTime;
  139.     Time            crossingTime;
  140.  
  141.     Time            dragFinishTime;
  142.     Time            dropFinishTime;
  143.     
  144.     Atom            dropSelection;
  145.     Widget            srcShell;
  146.     Position        startX, startY;
  147.  
  148.     XmID            siteID;
  149.  
  150.     Screen            *currScreen;
  151.     Window            currWmRoot;
  152.     XmDragOverShellWidget    curDragOver;
  153.     XmDragOverShellWidget    origDragOver;
  154.  
  155.     XmDragReceiverInfoStruct    *currReceiverInfo;
  156.     XmDragReceiverInfoStruct    *rootReceiverInfo;
  157.     XmDragReceiverInfoStruct    *receiverInfos;
  158.     Cardinal            numReceiverInfos;
  159.     Cardinal            maxReceiverInfos;
  160.  
  161.     unsigned char        trackingMode;
  162.     unsigned char        activeProtocolStyle;
  163. } XmDragContextPart;
  164.  
  165.  
  166. typedef  struct _XmDragContextRec{
  167.     CorePart             core;
  168.     XmDragContextPart        drag;
  169. } XmDragContextRec;
  170.  
  171. #define _XmDCtoDD(dc) ((XmDisplay)XtParent(dc))
  172.  
  173.  
  174. /********    Private Function Declarations    ********/
  175. #ifdef _NO_PROTO
  176.  
  177. extern XmDragReceiverInfo _XmAllocReceiverInfo() ;
  178. extern unsigned char _XmGetActiveProtocolStyle() ;
  179.  
  180. #else
  181.  
  182. extern XmDragReceiverInfo _XmAllocReceiverInfo( 
  183.                         XmDragContext dc) ;
  184. extern unsigned char _XmGetActiveProtocolStyle( 
  185.                         Widget w) ;
  186.  
  187. #endif /* _NO_PROTO */
  188. /********    End Private Function Declarations    ********/
  189.  
  190.  
  191. #ifdef __cplusplus
  192. }  /* Close scope of 'extern "C"' declaration which encloses file. */
  193. #endif
  194.  
  195. #endif /* _XmDragCP_h */
  196.